import static com.sun.deploy.util.VersionString.contains;
import static jdk.nashorn.internal.runtime.ScriptObject.getCount;

import java.util.Scanner;
public class StudentTest {
    public static void main(String[] args) {
        //定义长度为3的数组，存储1到3个学生对象作为初始数据，学生的学号，姓名各不相同
        //学生的属性：姓名，id，年龄
        //要求1；再次添加一个学生对象，并添加时进行id的唯一性判断
        //要求2：添加完毕后，遍历所有学生信息
        //要求3：通过id删除学生信息，如果存在删除，不存在提示删除失败
        //要求4：删除完毕，遍历所有学生信息
        //要求5：查询id为2的学生，如果存在将年龄+1

        //定义一个长度为3的数组，数组存储1到3名学生对象
        Student[] arr = new Student[3];

        Student s1 = new Student(001, "张三", 23);
        Student s2 = new Student(002, "李四", 24);
        Student s3 = new Student(003, "王五", 25);

        //将学生对象添加到数组当中
        arr[0] = s1;
        arr[1] = s2;
        arr[2] = s3;

        //再次添加一个学生对象
        System.out.println("----------再次添加一个学生对象---------");
        Student s4 = new Student();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生的id：");
        int id = sc.nextInt();
        s4.setId(id);

        System.out.println("请输入学生的姓名：");
        String name = sc.next();
        s4.setName(name);

        System.out.println("请输入学生的年龄：");
        int age = sc.nextInt();
        s4.setAge(age);

        //id的唯一性判断
        boolean flag1 = weiY(arr, s4.getId());
        if (flag1) {
            System.out.println("****再次添加学生的id已经存在，请重新添加****");
        } else {
            //id唯一 添加学生对象：

            boolean flag2 = shuZ(arr);
            if (flag2 == true) {
                //数组没有满，添加成功！
                arr[arr.length - 1] = s4;
                System.out.println("*****恭喜你，添加成功*****");
                //遍历所有学生信息
                System.out.println("*****所有学生信息******");
                for (int i = 0; i < arr.length; i++) {
                    arr[i].showStudentInfo();
                }
                System.out.println("---------请输入要删除的学生信息(ID具有唯一性)---------");
                int ID=sc.nextInt();
                int index=getIndex(arr,ID);
                if(index>=0){
                    arr[index]=null;
                    System.out.println("*****删除成功*****");
                    printArr(arr);
                }else {
                    System.out.println("*****id不存在，删除失败*****");

                }
                System.out.println();

            }
        }
    }

    public static boolean weiY(Student []arr,int id){

        for (int i = 0; i < arr.length-1; i++) {

            if(arr[i].getId()==id){
                return true;
            }
        }
        return false;
    }
    public static boolean shuZ(Student []arr){
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                count++;
            }
        }
        if(count!=arr.length){
            return true;
        }else{
            return false;
        }
    }
    public static int getIndex(Student []arr,int id){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i].getId()==id){
                return i;
            }
        }
        return -1;
    }
    public static void printArr(Student []arr){
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != null) {
                System.out.println(arr[i].getId() + "," + arr[i].getAge() + "," + arr[i].getName());
            }

        }
    }

    public class Student {
        private String name;
        private int id;
        private int age;

        public Student() {
        }

        public Student(String name, int id, int age) {
            this.name = name;
            this.id = id;
            this.age = age;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
        public void showStudentInfo(){
            System.out.println("学生姓名："+getName());
            System.out.println("学生年龄："+getAge());
            System.out.println("学生学号："+getId());
            System.out.println();
        }
    }




}

